Several different computer network techniques are available to transmit information throughout a group of interconnected computer systems. One technique uses a central computer, which has a network connection to all the computer systems included in the network. When using the central computer technique, computer systems will transmit information between each other via the central computer. For example, a first computer will send a message to a second computer by first sending the message to the central computer, which then forwards the message to the second computer system.
Other networking techniques that do not use a central computer are commonly known as "decentralized" computer networks. Decentralized computer networks transmit information between computers "directly" without using a central computer as an intermediary. In decentralized networks, computer systems commonly transmit data using flooding algorithms, wherein a stream of data is sent throughout the network without need for appending a destination address to the stream of data.
The direct connections of a decentralized network are typically pre-established prior to the transmission of information. However, the pre-established configuration of the computer interconnections may not be an efficient configuration. For example, a first computer system may be interconnected with a second computer system via a first direct connection which has a relatively high latency. A third computer system, however, may be able to provide a faster interconnection to the first computer system, in place of the connection between the first and second computer system.
In addition, sometimes a particular computer system connected to a network may have a relatively heavy work load. For example, a computer may have a relatively high number of interconnections with other computer systems. Therefore, that particular computer system has the cumbersome task of forwarding data to several interconnections. As a result, the heavy work load may be causing bottle neck like delay at the computer system. This could be reduced by having the computer system with the heavy work load drop some of its interconnections.
However, conventional computer systems in a decentralized network are unable to "dynamically" (i.e., without user interaction) re-configure a set of interconnections to provide more efficient configuration of computer interconnections.
Therefore, it can be appreciated, that there is a need for having computer systems in a decentralized network, dynamically detect an inefficient topology and re-configure the computer interconnections into a more efficient configuration of computer interconnections.